home *** CD-ROM | disk | FTP | other *** search
-
-
-
- xxxxllllvvvv((((7777MMMM)))) xxxxllllvvvv((((7777MMMM))))
-
-
-
- NNNNAAAAMMMMEEEE
- xlv - logical volume disk driver
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ////ddddeeeevvvv////xxxxllllvvvv////****
- ////ddddeeeevvvv////rrrrxxxxllllvvvv////****
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- XLV devices provide access to disk storage as _l_o_g_i_c_a_l _v_o_l_u_m_e_s. A logical
- volume is an object that behaves like a disk partition, but its storage
- can span several physical disk devices.
-
- Using XLV, you can concatenate disks together to create larger logical
- volumes, stripe data across disks to create logical volumes with greater
- throughput, and plex (or mirror) disks for reliability. In addition, XLV
- enables you to change the configuration of volumes while the volume is
- actively being used as a filesystem.
-
- The geometry of logical volumes (e.g., the disks that belong to it, how
- they are put together, etc.) are stored in the disk labels of the disks
- that belong to the logical volumes. When the system starts up, the
- utility _x_l_v__a_s_s_e_m_b_l_e(1M) scans all the disks on the system and
- automatically assembles them into logical volumes. _x_l_v__a_s_s_e_m_b_l_e(1M) also
- creates any necessary device nodes.
-
- XLV device names always begin with ////ddddeeeevvvv////{{{{rrrr}}}}xxxxllllvvvv////_d_e_v_i_c_e__n_a_m_e where the
- _d_e_v_i_c_e__n_a_m_e is assigned by the creator of the volume. See _x_l_v__m_a_k_e(1M)
- for how volumes are created.
-
- Device numbers range from 0 to one less than the maximum number of
- logical volume devices configured in the system. This is 10 by default;
- this number can be changed by rebuilding a kernel with _l_b_o_o_t(1M).
-
- There is a kernel driver, referred to as _x_l_v, and some daemons for the
- logical volume devices. The driver is a 'pseudo device' not directly
- associated with any physical hardware; its function is to map requests on
- logical volume devices into requests on the underlying disk devices. The
- daemons take care of error recovery and dynamic reconfiguration of
- volumes.
-
- VVVVoooolllluuuummmmeeee OOOObbbbjjjjeeeeccccttttssss
- XLV allows you to work with whole volumes and pieces of volumes. Pieces
- of volumes are useful for creating and reconfiguring volumes in units
- that are larger than individual disk partitions.
-
- Each _v_o_l_u_m_e consists of up to three _s_u_b_v_o_l_u_m_e_s. An _x_f_s(4) filesystem
- usually has a large _d_a_t_a subvolume in which all the user files and
- metadata such as inodes are stored and a small _l_o_g subvolume in which the
- filesystem log is stored. For high-performance and real-time
- applications, a volume can also have a _r_e_a_l-_t_i_m_e subvolume that contains
- only user files aligned at configurable block boundaries. Guaranteed
- rate I/O can be done to real-time subvolumes. See _g_r_i_o(5).
-
-
-
- PPPPaaaaggggeeee 1111
-
-
-
-
-
-
- xxxxllllvvvv((((7777MMMM)))) xxxxllllvvvv((((7777MMMM))))
-
-
-
- Each subvolume can be independently organized as 1 to 4 _p_l_e_x_e_s. Plexes
- are sometimes known as mirrors. XLV makes sure that the data in all the
- plexes of a subvolume are the same. Plexes are useful for reliability
- since a subvolume remains available if any of its plexes are available.
- Since each subvolume is independently organized, you can choose to plex
- any, all, or none of the subvolumes within a volume.
-
- Each plex consists of up to 128 _v_o_l_u_m_e _e_l_e_m_e_n_t_s. Each volume element is
- a collection of _d_i_s_k _p_a_r_t_i_t_i_o_n_s that may be either striped or
- concatenated. By adding volume elements, you can extend the size of a
- subvolume -- even one that is striped. Volume elements within a plex do
- not need to be of the same size. However, all the volume elements at the
- same offset in all the plexes of the subvolume must be the same size.
- For example, the first and second volume elements in a plex can have
- different sizes. But the first volume element in all the plexes of the
- subvolume must be the same size. This restriction is necessary because
- the volume element is the unit of recovery. Note that if XLV gets an
- unrecoverable disk error on one disk partition in a volume element, the
- entire volume element is taken offline.
-
- Each volume element can consist of from 1 to 100 disk partitions. The
- disks can be treated as either a _c_o_n_c_a_t_e_n_a_t_e_d _s_e_t (in which case XLV
- writes to the partitions sequentially) or as a _s_t_r_i_p_e_d _s_e_t (in which case
- XLV writes a stripe unit's worth of data to one disk and then rotates to
- the next disk in the stripe set.) In general, it is better to use volume
- elements that contain single disks when you want to concatenate disks
- together and only use volume elements with multiple disks when you want
- to use disk-striping. This is because the volume element is the unit of
- recovery.
-
- XLV allows you to create and work with volumes, subvolumes, plexes, and
- volume elements. The interesting operations associated with volumes are:
- creating them, assembling disk partitions into volumes, mounting them,
- changing volume configurations, shutting them down, and destroying them.
-
- NNNNaaaammmmiiiinnnngggg VVVVoooolllluuuummmmeeee OOOObbbbjjjjeeeeccccttttssss
- Each XLV object is composed of a hierarchy of lower level objects. For
- example, a volume is composed of subvolumes that are in turn composed of
- plexes, etc. To let you refer to a component of an XLV object, XLV has
- adopted a hierarchical naming convention. For example:
-
- mmmmoooovvvviiiieeeessss....ddddaaaattttaaaa....0000....5555....55550000 Refers to the volume named _m_o_v_i_e, the _d_a_t_a subvolume,
- plex _0 of that subvolume, volume element _5 within
- that plex, and disk partition _5_0 within that volume
- element. Note that the numbers are zero-based.
-
- mmmmoooovvvviiiieeeessss....lllloooogggg....2222 Refers to plex number 2 in the log subvolume of the
- volume named _m_o_v_i_e_s.
-
- mmmmoooovvvviiiieeeessss....rrrrtttt....1111....5555 Refers to volume element 5 within plex number 1 of
- the real-time subvolume of the volume named _m_o_v_i_e_s.
-
-
-
-
- PPPPaaaaggggeeee 2222
-
-
-
-
-
-
- xxxxllllvvvv((((7777MMMM)))) xxxxllllvvvv((((7777MMMM))))
-
-
-
- If you create an object outside of a volume, then that object has a
- user-assigned name. For example, ssssppppaaaarrrreeee____pppplllleeeexxxx....2222....1111 refers to disk partition
- number 1 of volume element number 2 of a standalone plex named
- _s_p_a_r_e__p_l_e_x. _s_p_a_r_e__p_l_e_x does not currently belong to any subvolumes.
-
- These names are echoed by _x_l_v__m_a_k_e(1M) as objects are created. They are
- also useful in specifying the objects to change via _x_l_v__m_g_r(1M).
-
- CCCCrrrreeeeaaaattttiiiinnnngggg VVVVoooolllluuuummmmeeeessss
- Volumes are created via _x_l_v__m_a_k_e(1M). This utility writes the volume
- geometry to all the disks that belong to the volume object. The geometry
- is written to the volume headers. See _v_h(7M).
-
- AAAAsssssssseeeemmmmbbbblllliiiinnnngggg VVVVoooolllluuuummmmeeeessss
- After a volume has been created, it must be made known to the kernel
- driver before I/O can be initiated to the volume. The command
- _x_l_v__a_s_s_e_m_b_l_e(1M) scans all the disks attached to the system and assembles
- all the logical volumes that it finds. It then passes the configuration
- to the kernel. This is usually done during system startup. Once a
- volume has been assembled, I/O can be performed.
-
- WWWWoooorrrrkkkkiiiinnnngggg wwwwiiiitttthhhh FFFFiiiilllleeeessssyyyysssstttteeeemmmmssss
- The normal filesystem utilities such as _m_k_f_s(1M) and _m_o_u_n_t(1M) work with
- logical volumes.
-
- A logical volume consisting of a single disk partition (that may be
- plexed) can be used as _r_o_o_t(7M). You cannot boot directly off a logical
- volume; you must specify the underlying disk partition.
-
- MMMMooooddddiiiiffffyyyyiiiinnnngggg VVVVoooolllluuuummmmeeeessss
- The geometry of a volume object can be modified either offline or online.
- To modify a volume object offline, first unmount the filesystem, then
- destroy the volume object by using _x_l_v__m_g_r(1M). Then, you can run
- _x_l_v__m_a_k_e(1M) to create new XLV objects. Note that _x_l_v__m_a_k_e only allows
- you to use disk partitions that are not currently part of volume objects.
-
- You can also modify volume objects while they are online by using
- _x_l_v__m_g_r(1M). You can grow a volume, add a plex, and remove a plex while
- the volume is actively being used. Note that I/O is blocked while the
- configuration is being changed. The blocked I/O is completed after the
- configuration has been written out to the disk labels.
-
- You can also use _x_l_v__m_g_r to remove a volume element from a plex while the
- volume is online if there is at least one other plex that covers the
- range of disk blocks affected. Note that you can choose to plex only a
- portion of the address space of a subvolume.
-
- WWWWoooorrrrkkkkiiiinnnngggg wwwwiiiitttthhhh PPPPlllleeeexxxxeeeessss
- When there are multiple plexes, XLV recovers from read errors. In
- addition, XLV attempts to rewrite the data back to the failed plex. XLV
- masks write errors if it can write to at least one of the plexes.
-
-
-
-
- PPPPaaaaggggeeee 3333
-
-
-
-
-
-
- xxxxllllvvvv((((7777MMMM)))) xxxxllllvvvv((((7777MMMM))))
-
-
-
- When a plexed volume starts up, XLV automatically makes sure that all the
- data among the plexes within each subvolume is consistent. This may
- involve copying the data from one plex to the others. While this is
- going on, the volume is available at a degraded performance. You can
- eliminate the need for plex recovery by shutting down the plex with
- _x_l_v__s_h_u_t_d_o_w_n(1M). _x_l_v__s_h_u_t_d_o_w_n synchronizes the plexes and marks them as
- been the same so that when they restart, XLV knows that the plexes are
- consistent and can therefore avoid the plex copies.
-
- FFFFIIIILLLLEEEESSSS
- /dev/xlv/*
- /dev/rxlv/*
- /var/sysgen/master.d/xlv
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- cfg(1M), lv_to_xlv(1M), xlv_assemble(1M), xlv_labd(1M), xlv_make(1M),
- xlv_mgr(1M), xlv_plexd(1M), xlv_shutdown(1M), xlvd(1M), grio(5).
-
- NNNNOOOOTTTTEEEESSSS
- XLV runs on both XFS and EFS filesystems. In addition, you can read and
- write to XLV devices using the raw device interfaces.
-
- XLV disk labels are stored on the disks themselves. Therefore, you can
- physically reposition the disk drives and XLV still assembles them
- correctly.
-
- You can upgrade from an existing _l_v(7M) volume to an XLV volume by using
- _l_v__t_o__x_l_v(1M).
-
- When you are running in the miniroot, the XLV device nodes are created in
- /_r_o_o_t/_d_e_v/_x_l_v and /_r_o_o_t/_d_e_v/_r_x_l_v.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- PPPPaaaaggggeeee 4444
-
-
-
-